I. Field of the Invention
The present invention generally relates to distributed systems that implement application services and, more particularly, relates to systems, methods, and articles of manufacture for dynamically providing application services in a distributed system.
II. Background and Material Information
The continued growth of networked systems, such as the Internet, and their use for communicating and performing multiple tasks, has spawned many software and hardware architectures and solutions that help enterprises conduct business in a global market. Many forms of distributed systems have been designed to address performance, scalability, and reliability issues inherent in remotely connected environments. One type of distributed system that emerged to overcome limitations of earlier systems is the three-tier architecture. The three tier architecture is a popular system arrangement that implements a middle tier server between client and server tiers. The middle tier provides process management services where enterprise business logic and rules, and process monitoring and development may be executed to handle requests from many distributed users operating at the client tier. The server tier is designed to handle database management tasks, such as file and data services for assisting the middle tier in delivering requesting information to the client tier. In some conventional systems, the middle tier may be separated into further layers for handling client requests received across distributed networks, such as the Internet. In such configurations, some three-tier architectures become a multi-layer architecture, where a Web server may be positioned as an intermediate layer between the client tier and the process management components of the middle tier. The Web server may be configured to receive requests from the Internet clients and generate Web pages with, for example, HyperText Mark-Up Language (HTML), using application services provided by the process management business logic.
While conventional distributed systems, such as the three tier architecture provides global enterprises with efficient and flexible solutions for providing shared resources to multiple clients, there are some drawbacks to their design and implementation. For example, in some environments the three tier architecture promotes disjointed design and development that results in inefficiencies when developing and implementing new applications for use in the system. Different developers work on different aspects of the architecture; database experts work on the database system, Web service developers work on application services in the middle tier, etc. Personnel associated with one tier may not be knowledgeable in the development and operations of another tier, which may result in a disconnect between the tiers. Further, by allowing a Web server to perform Web page and application creation, systems may lose control over certain information and how content is created, and possibly expose proprietary information to unauthorized access. Moreover, the number of communications between the server tier and the database tier to process client requests, and the type of code and infrastructure implemented by an enterprise may detrimentally affect the bandwidth and other network performances.
Accordingly, there is a need for a distributed system that provides the benefits of a three tier architecture while minimizing the potential problems of such an architecture in order to provide efficient, reliable, and secure applications for development and distribution.